首页 > 试题广场 >

牛牛的交换排序

[编程题]牛牛的交换排序
  • 热度指数:283 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
牛牛有一个数组和一个数组,两个数组长度一样。其中,数组中只含有0和1这两种元素。
牛牛现在想对数组进行排序(从小到大),只不过牛牛只能通过不断地对数组中的元素进行交换操作来完成他的排序,具体交换操作如下:
当且仅当才可以交换,同时,交换的时候也会相应的发生交换。
牛牛是一个很懒的人,如果他觉得不能够排序成功(从小到大),那么他就放弃了。
现在牛牛想请你写一个程序,给定一个数组和一个数组,返回牛牛是否可以排序成功(从小到大),如果可以,返回"YES",反之,返回"NO"。

示例1

输入

3,[1,2,3],[0,0,0]

输出

"YES"

说明

a数组已是升序,不需要再排序,返回"YES"。 
示例2

输入

3,[3,2,1],[0,0,0]

输出

"NO"

说明

a数组非升序且不满足交换操作要求,无法完成排序,返回"NO"。 

备注:
,保证a[i]两两不同
只要b中有0和1,总能进行排序
发表于 2021-08-27 20:14:26 回复(0)

问题信息

难度:
1条回答 1268浏览

热门推荐

通过挑战的用户